package cn.etg.day08;
/**
 * 使用异常捕获机制完成下述读取操作
 * 读取emp.txt文件，并将每个员工信息读取出来，以一个Emp实例保存，然后将
 * 这些Emp实例存入到一个Map集合中。其中key为字符串，是该员工名字，而value
 * 是该Emp实例。
 * 存入后，要求用户输入一个员工的名字,如:张三
 * 若该员工存在则输出该员工所有信息(Emp的toString方法返回的字符串)
 * 输入的员工名若是英文，不要求区分大小写。
 * 若输入的员工名字不存在，则显示"查无此人"
 * 
 * @author Xiloer
 *
 */
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class Test04 {
    public static void main(String[] args) {
        // 创建Map集合，用于存储员工信息
        Map<String, Emp> empMap = new HashMap<>();

        // 读取文件并存储员工信息到Map集合
        try (BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream("emp.txt"), "GBK"))) {
            String line;
            while ((line = reader.readLine()) != null) {
                // 解析员工信息并创建Emp实例
                String[] parts = line.split(",");
                if (parts.length == 5) {
                    String name = parts[0];
                    int age = Integer.parseInt(parts[1]);
                    String gender = parts[2];
                    int salary = Integer.parseInt(parts[3]);
                    // 假设Emp类有相应的构造方法
                    Emp emp = new Emp(name, age, gender, salary, new Date(parts[4]));
                    empMap.put(name, emp);
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

        // 用户输入员工名字
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入员工的名字：");
        String inputName = scanner.nextLine();
        scanner.close();

        // 查找并输出员工信息
        Emp emp = empMap.get(inputName.toLowerCase());
        if (emp != null) {
            System.out.println(emp.toString());
        } else {
            System.out.println("查无此人");
        }
    }
}